home *** CD-ROM | disk | FTP | other *** search
- // Lock File Plug In for Now Utilities 6.0
- // © Now Software, Inc.
- //
- // written by hac
- // 3/4/96
- //
- // This module installs three grouped menu items in the Now Tabs popup:
- // - Lock
- // - Unlock
-
-
-
- #include "Main.h"
-
- #define kLock 2
- #define kUnlock 3
-
- pascal void main(PlugInInformation *plugInInformation)
- {
- plugInInformation->version = kPlugInInformationVersionOne;
- plugInInformation->plugInType = kFileLockingPlugInType;
- plugInInformation->PrepareMenu = &PrepareMenu;
- plugInInformation->HandleMenuItemSelected = &HandleMenuItemSelected;
- }
-
- pascal void PrepareMenu(InstantAccessInformation *information, short asPreview)
- {
- MenuSelectResultStructure mrs;
-
- MenuItemInformation menuItem;
-
- // add a divider line above
- menuItem.version = kMenuItemInformationVersionOne;
- menuItem.classification = kMiscellaneousClassification;
- menuItem.type = kDividerMenuItemType;
- menuItem.id = 1;
- menuItem.enabled = false;
- menuItem.style = 0;
- menuItem.mark = 0;
- menuItem.hasSubMenu = FALSE;
- menuItem.subMenu = nil;
- menuItem.refCon = 0;
- menuItem.owningPlugInType = kFileLockingPlugInType;
-
- (*information->AddMenuItem)(&menuItem);
-
- // add the lock menu item
-
- BlockMove("\pLock", menuItem.text, kMenuItemTextSize);
-
- menuItem.type = kTextMenuItemType;
- menuItem.id = 2;
- menuItem.enabled = true;
-
- (*information->AddMenuItem)(&menuItem);
-
- // add the unlock menu item
-
- BlockMove("\pUnlock", menuItem.text, kMenuItemTextSize);
-
- menuItem.type = kTextMenuItemType;
- menuItem.id = 3;
- menuItem.enabled = true;
-
- (*information->AddMenuItem)(&menuItem);
-
- // add a divider line below
- menuItem.type = kDividerMenuItemType;
- menuItem.id = 5;
- menuItem.enabled = false;
-
- (*information->AddMenuItem)(&menuItem);
- }
-
- pascal void CleanUpAfterMenuSelect(InstantAccessInformation *information, short asPreview)
- {
- //hmmmm....
- }
-
- pascal void HandleMenuItemSelected(InstantAccessInformation *information, MenuItemInformation *menuItem)
- {
- OSErr err = noErr;
- short index;
- short itemCount;
- FSSpec spec;
- void* reference;
-
- // count the number of selected items
- itemCount = (*information->CountSelectedItems)();
-
- // index through each one
- for (index = 0; index < itemCount; index++) {
-
- // get the item reference
- reference = (*information->GetNthSelectedItemReference)(index);
-
- // get the file spec
- (*information->GetSelectedItemFileSpec)(reference, &spec);
-
- switch (menuItem->id) {
-
- case kLock:
- err = FSpSetFLock(&spec);
- break;
-
- case kUnlock:
- err = FSpRstFLock(&spec);
- break;
-
- otherwise:
- break;
-
- }
-
- }
-
- error:;
-
- }
-